package common.base.service;

import java.util.List;

import common.base.BaseVo;
import common.base.GridPage;

public interface BaseService<T,S extends BaseVo> {
	/**
	 * 根据ID获取实体对象
	 * 
	 * @param id
	 *        记录ID
	 * @return 实体对象
	 */
	public T get(Integer id);

	
	/**
	 * 根据SearchVo进行查询(提供分页、查找、排序功能)
	 * 
	 * @param pager
	 *        Pager对象
	 * @return Pager对象
	 */
	public GridPage<T> findPagerBySearchVo(S searchVo);
	
	public List<T> findAll();
	/**
	 * 保存实体对象
	 * 
	 * @param entity
	 *        对象
	 * @return ID
	 */
	public T add(T entity);

	/**
	 * 更新实体对象
	 * 
	 * @param entity
	 *        对象
	 */
	public T update(T entity);

	/**
	 * 根据ID删除实体对象
	 * 
	 * @param id
	 *        记录ID
	 */
	public Boolean delete(Integer id);

	/**
	 * 根据ID数组删除实体对象
	 * 
	 * @param ids
	 *        ID数组
	 */
	public Boolean deleteBatch(List<Integer> ids);

}
